﻿#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QSqlDatabase>
#include <QDebug>
#include <QMessageBox>
#include <QSqlError>
#include <QSqlQuery>
#include <QSqlTableModel>
#include <QSqlRecord>
#include "dialog.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    //将QSqlTableModel与QSqlDatabase绑定即pModel与sqldb绑定，然后将pModel与QTableView绑定，实现修改QTableView时，自动更新对数据库的操作。

    QSqlDatabase sqldb;     //用于链接数据库
    QSqlTableModel *pModel; //用于操作数据库

    /************************************
     * function        connection
     * destription     建立数据库链接
     * input           0
     * return          void
    ************************************/
    void connection();

    /************************************
     * function        initial
     * destription     初始化QSqlTableMode，设置格式
     * input           0
     * return          void
    ************************************/
    void initial_tablemode();

    /************************************
     * function        initial
     * destription     初始化QTableView，设置格式
     * input           0
     * return          void
    ************************************/
    void initial_tableview();

    /************************************
     * function        selection
     * destription     显示查询内容，用于槽函数
     * input           0
     * return          void
    ************************************/
    void selection();

    /************************************
     * function        insert
     * destription     添加信息，用于槽函数
     * input           0
     * return          void
    ************************************/
    void insert();


    /************************************
     * function        updata
     * destription     修改数据，用于槽函数
     * input           0
     * return          void
    ************************************/
    void updata();


    /************************************
     * function        mydelete
     * destription     删除数据
     * input           0
     * return          void
    ************************************/
    void mydelete();


private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
